// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); 2025-ci ilin Ən Yaxşı Azərbaycan Kazinoları VIP Klub və Loyallıq Proqramları ilə – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

2025-ci ilin Ən Yaxşı Azərbaycan Kazinoları VIP Klub və Loyallıq Proqramları ilə

Azərbaycanda kazino saytlari sizin üçün unikal imkanlar təqdim edir! Casino online platformaları vasitəsilə kazino oyunlari oynamaq heç vaxt bu qədər maraqlı və qazanclı olmayıb.

Online casino dünyasında ən yüksək keyfiyyət və etibarlılıqla tanış olun. Online kazino təcrübəsi ilə kazino oyunları oynayaraq həm əylənin, həm də böyük qazanc şansı əldə edin.

2025-ci ildə VIP klub və loyallıq proqramları ilə xüsusi üstünlüklərdən yararlanın. Azərbaycanın ən yaxşı kazino platformaları sizi gözləyir!

Azərbaycan Kazinolarının Üstünlükləri

Azərbaycanda kazino saytlari müxtəlif kazino oyunları ilə zəngin seçim təqdim edir. Online kazino platformaları vasitəsilə istifadəçilər rahat şəkildə casino oyunları oynaya bilərlər. Kazino online xidmətləri yüksək keyfiyyətli qrafika və interaktiv interfeyslə zəngindir.

Azərbaycanda kazino oyunlari həm yeni başlayanlar, həm də təcrübəli oyunçular üçün uyğun seçimlər təqdim edir. Casino online platformaları təhlükəsiz ödəniş metodları və sürətli məbləğ çıxarışı ilə fərqlənir. Kazino oyunları arasında rulet, poker, slot maşınları və digər populyar oyunlar mövcuddur.

Azərbaycanda kazino saytlari həmçinin eksklüziv bonuslar və aksiyalarla istifadəçiləri cəlb edir. Kazino online oyunları hər zövqə uyğun seçimlərlə zəngin olduğundan, hər kəs özünə uyğun oyun tapa bilər. Bu, Azərbaycan kazinolarının əsas üstünlüklərindən biridir.

VIP Klubların Eksklüziv İmkanları

VIP klub üzvləri üçün azerbaycanda kazino saytlari özəl üstünlüklər təqdim edir. Bu imkanlar arasında fərdi məsləhətçi xidməti, yüksək limitli casino online oyunları və eksklüziv bonuslar yer alır.

Kazino online platformalarında VIP üzvlər üçün xüsusi turnirlər və tədbirlər təşkil olunur. Bu, online kazino təcrübəsini daha da maraqlı və qazanclı edir.

Həmçinin, kazino oyunları üçün yüksək cashback və pulsuz fırlanmalar kimi üstünlüklər də mövcuddur. Online casino dünyasında eksklüziv imkanlardan yararlanmaq üçün VIP klub üzvü olmaq şərtdir.

Əlavə olaraq, kazino oyunlari üçün xüsusi promosyonlar və aksiyalar da VIP üzvlərə təqdim olunur. Bu, hər bir oyunçuya unikal bir təcrübə yaşadır.

Loyallıq Proqramları və Mükafatlar

Ən yaxşı online kazino platformaları sizin sadiqliyinizi qiymətləndirir və bunun üçün xüsusi loyallıq proqramları təqdim edir. Bu proqramlar vasitəsilə kazino oyunları oynayaraq daha çox mükafatlar qazana bilərsiniz.

  • Kazino online oyunlarında qazandığınız hər bir xal, sizi eksklüziv mükafatlara yaxınlaşdırır.
  • VIP klub üzvləri üçün xüsusi bonuslar, pulsuz fırlanmalar və şəxsi menecer xidməti mövcuddur.
  • Casino online platformalarında daha çox vaxt keçirdikcə, loyallıq səviyyəniz artır və daha böyük mükafatlar əldə edirsiniz.
  • Online kazino oyunlarında qazandığınız xalları istifadə edərək pulsuz oyunlar əldə edin.
  • Casino online turnirlərində iştirak edərək əlavə bonuslar qazanın.
  • Kazino oyunları üçün eksklüziv aksiyalara və endirimlərə çıxış əldə edin.
  • Loyallıq proqramları ilə hər bir kazino oyunu daha maraqlı və qazanclı olur. Online casino dünyasında sizin üçün hazırlanmış bu imkanlardan yararlanın!

    2025-ci İl Üçün Yeni Trendlər

    2025-ci ildə kazino online sahəsində bir çox yeniliklər və inkişaflar gözlənilir. Azərbaycanda kazino saytlari daha interaktiv və istifadəçi dostu olmaqla yanaşı, yeni texnologiyalarla zənginləşəcək. Aşağıda əsas trendləri sizin üçün təqdim edirik:

    Trend
    Təsvir

    Virtual Reallıq (VR) Kazinoları Online kazino oyunlari artıq virtual reallıq texnologiyası ilə daha da həyəcanlı olacaq. İstifadəçilər real kazino atmosferini evdən yaşaya biləcək. Kriptovalyuta ilə Ödənişlər Casino online platformaları kriptovalyuta ilə ödənişləri dəstəkləyərək, daha təhlükəsiz və sürətli əməliyyatlar təqdim edəcək. Fərdiləşdirilmiş Oyun Təcrübəsi Kazino oyunları istifadəçilərin zövqünə uyğun fərdiləşdiriləcək. AI texnologiyası ilə hər bir oyunçu üçün unikal təkliflər yaradılacaq. Mobil Uyğunluq Azərbaycanda kazino saytlari mobil cihazlar üçün daha da optimallaşdırılacaq. İstifadəçilər hər yerdən kazino oyunlarına qoşula biləcək.

    Bu yeniliklərlə 2025-ci ildə casino online dünyası daha da maraqlı və rahat olacaq. Azərbaycanda kazino həvəskarları üçün bu, yeni imkanlar və unudulmaz təcrübələr deməkdir.

    Kazinoların Təhlükəsizlik və Etibarlılığı

    Azərbaycanda kazino saytlari istifadəçilərinə yüksək təhlükəsizlik standartları təqdim edir. Online kazino platformaları qabaqcıl şifrələmə texnologiyaları ilə məlumatlarınızı qoruyur və şəxsi məlumatların üçüncü şəxslərə sızmasının qarşısını alır.

    Kazino online oyunlarında ədalətli nəticələr təmin etmək üçün müstəqil təşkilatlar tərəfindən təsdiqlənmiş təsadüfi ədəd generatorları (RNG) istifadə olunur. Bu, kazino oyunları zamanı şəffaflıq və etibarlılıq zəmanətidir.

    Casino online platformaları həmçinin maliyyə əməliyyatlarınızın təhlükəsizliyini təmin edir. Müxtəlif ödəniş metodları ilə depozit və çıxarışlarınız sürətli və təhlükəsiz şəkildə həyata keçirilir. Kazino təcrübəniz üçün ən yaxşı şərait yaradılır.

    Azərbaycanda kazino oyunları oynamaq istəyənlər üçün lisenziyalı və tənzimlənən platformalar əsas seçim olmalıdır. Bu, həm əyləncə, həm də təhlükəsizlik zəmanəti deməkdir.

    Müştəri Xidməti və Şəxsi Yanaşma

    Kazino online platformalarında müştəri xidməti keyfiyyəti ən yüksək səviyyədədir. Bizim online casino xidmətimiz hər bir oyunçunun ehtiyaclarına uyğun fərdi yanaşma təqdim edir. Azərbaycanda kazino saytlari arasında fərqlənən xidmətimizlə sizə 7/24 dəstək göstəririk.

    Kazino oyunları oynayarkən hər hansı bir sualınız və ya problemlə qarşılaşsanız, peşəkar komandamız sizə dərhal kömək edəcək. Online kazino təcrübənizi daha rahat və maraqlı etmək üçün şəxsi məsləhətlər və eksklüziv təkliflər təqdim edirik.

    Casino dünyasında sizin üçün ən yaxşı xidməti təmin etmək məqsədimizdir. Casino online platformamızda hər bir müştəri bizim üçün unikaldır və sizin rahatlığınız bizim üçün ən vacibdir.

    Ən Populyar Oyun Növləri

    Azerbaycanda kazino saytlari müxtəlif online kazino oyunları ilə zəngindir. Bu oyunlar həm yeni başlayanlar, həm də təcrübəli oyunçular üçün maraqlıdır. İşdə ən çox sevilən oyun növləri:

    • Slotlar: Online casino platformalarında ən geniş yayılmış oyun növüdür. Müxtəlif mövzulu və cazibədar xüsusiyyətlərə malik slotlar mövcuddur.
    • Rulet: Klassik casino oyunlarından biri olan rulet, həm sadə, həm də strategiya tələb edən oyunçular üçün ideal seçimdir.
    • Blackjack: Şans və bacarıq tələb edən bu oyun, kazino oyunlari arasında xüsusi yer tutur.
    • Poker: Online kazino platformalarında müxtəlif poker növləri təqdim olunur. Həm tək, həm də canlı oyunçularla oynamaq mümkündür.
    • Canlı Diler Oyunları: Kazino online platformalarında real dilerlərlə oynamaq imkanı verən bu oyunlar, daha da həyəcanlı atmosfer yaradır.

    Azərbaycanda kazino oyunları həm əyləncə, həm də böyük qazanc fürsəti təqdim edir. Siz də sevimli oyununuzu tapın və unudulmaz təcrübə yaşayın!

    Onlayn Kazinoların Üstünlükləri

    Onlayn kazino oyunları, müasir dövrdə əyləncə və qazanc üçün ən rahat üsullardan biridir. Casino online platformaları, istifadəçilərə evdən və ya hər yerdən kazino oyunları oynamaq imkanı yaradır. Bu, xüsusilə Azərbaycanda kazino saytlari arasında populyarlıq qazanıb.

    Online casino oyunları, müxtəlif növ oyun seçimləri ilə zəngindir. Kazino online platformalarında rulet, poker, slot maşınları və digər kazino oyunlari asanlıqla tapıla bilər. Hər bir oyunçu öz zövqünə uyğun oyun seçə bilər.

    Azərbaycanda kazino saytlari, həmçinin təhlükəsizlik və rahatlıq təmin edir. Casino online platformaları, yüksək texnologiyalı şifrələmə sistemləri ilə istifadəçilərin məlumatlarını qoruyur. Kazino oyunları oynamaq üçün heç bir fiziki məkan ziyarəti tələb olunmur.

    Üstəlik, kazino online platformaları, VIP klub və loyallıq proqramları ilə oyunçulara xüsusi üstünlüklər təqdim edir. Bu, həm əyləncəni, həm də qazancı daha da maraqlı edir. Casino online dünyası, hər kəsin zövqünə uyğun bir təcrübə təqdim edir.

    Azərbaycan Kazinolarının Gələcəyi

    Azərbaycanda kazino saytlari sürətlə inkişaf edir və texnologiya ilə birlikdə yeni imkanlar təqdim edir. Kazino oyunları artıq yalnız fiziki məkanda deyil, həm də online casino platformalarında geniş seçimlə təqdim olunur. Bu, istifadəçilərə rahatlıq və müxtəliflik bəxş edir.

    Gələcəkdə kazino online sektoru daha da genişlənəcək və yeni texnologiyalar, məsələn, virtual reallıq və süni intellekt, kazino təcrübəsini daha da maraqlı edəcək. Casino online platformaları istifadəçilərə şəxsi təcrübə və təhlükəsizlik təmin edəcək.

    Azərbaycanın online kazino bazarı dünya standartlarına uyğun olaraq inkişaf edir və yerli istifadəçilər üçün unikal imkanlar yaradır. Kazino sevənlər üçün bu, yeni dövrün başlanğıcıdır!

    Design and Develop by Ovatheme